An integrated circuit may contain a number of functional blocks or devices, such as processing cores, memories and peripherals, for example, that are interconnected to enable data to be transferred during operation. Simpler circuits may communicate via one or more shared bus structures. More complex integrated circuits, such as System-on-Chip (SoC) circuits and circuits having multiple processing cores, for example, may transport data using a dedicated interconnect structure such as a bus or network.
In order to facilitate modular design, in which functional blocks are reused, the properties of the communication structure may be defined by standard bus protocols, such as the Advanced Microcontroller Bus Architecture (AMBA™) of ARM Limited.
To cope with increasing complexity, an integrated circuit with multiple functional blocks may be configured as an interconnect network to enable efficient communication between functional blocks. Data flows around the networks in groups of digits called ‘flits’, which abbreviates the terms Flow Control Units or Flow Control Digits. Each flit includes a payload together with information to control its flow through the network.